package cn.italkcloud.cph.entity.dto;

import cn.italkcloud.cph.utils.StringUtil;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @author dominate
 * @since 2024/7/9
 **/
@ToString
@Data
public class VosCustomerDTO implements Serializable {

    private static final long serialVersionUID = 1L;
    private Integer id;
    /**
     * 所属账号ID
     */
    private Integer accountId;
    private String accountName;

    private Integer serverId;
    private String serverName;

    /**
     * vos 账户名称
     */
    private String vosName;

    /**
     * vos 账户号码 唯一
     */
    private String vosAccount;

    /**
     * 余额
     */
    private BigDecimal money;

    /**
     * 透支限额
     */
    private BigDecimal limitMoney;

    /**
     * 计费费率组
     */
    private String feeRateGroup;

    /**
     * 账户类型 0普通账户 1 电话卡 2结算账户
     */
    private Integer type;
    private String typeName;

    /**
     * 锁定类型 0未锁定 1锁定
     */
    private Integer lockType;
    private String lockTypeName;

    /**
     * true已注销 false未注销
     */
    private Boolean canceled;

    /**
     * 启用时间
     */
    private Long startTime;

    /**
     * 有效时间
     */
    private Long validTime;

    /**
     * 今日消费
     */
    private BigDecimal todayConsumption;

    public VosCustomerDTO() {

    }

    public VosCustomerDTO(String account) {
        this.accountId = 0;
        this.accountName = StringUtil.EMPTY;
        this.vosName = StringUtil.EMPTY;
        this.vosAccount = account;
        this.money = BigDecimal.ZERO;
        this.limitMoney = BigDecimal.ZERO;
        this.feeRateGroup = StringUtil.EMPTY;
        this.type = -1;
        this.typeName = StringUtil.EMPTY;
        this.lockType = -1;
        this.lockTypeName = StringUtil.EMPTY;
        this.canceled = true;
        this.startTime = 0L;
        this.validTime = 0L;
        this.todayConsumption = BigDecimal.ZERO;
    }

}
